import random
import pygame
from game_items import *
from game_hud import *
from game_music import *
class Game(object):
    """游戏类"""
    def __init__(self):
        # 游戏主窗口
        self.main_window = pygame.display.set_mode(SCREEN_RECT.size)
        pygame.display.set_caption("飞机大战")
        # 背景精灵，交替滚动
        self.all_group.add(Background(False), Background(True))
        # 游戏状态属性
        self.is_game_over = False      #游戏结束标记
        self.is_pause = False          #游戏暂停标记
    def reset_game(self):
        """重置游戏"""
        self.is_game_over = False
        self.is_pause = False
        # 指示器面板
        self.hud_panel = HUdPanel(self.all_group)
def event_handler(self):
    """事件监听
    :return:如果监听到退出事件,返回True,否则返回False
    """
    for event in pygame.event.get():
        if event.type == pygame.QUIT:
            return True
        elif event.type == pygame.KEYDOWN and event.key == pygame.K_ESCAPE:
            return True
        elif event.type == pygame.KEYDOWN and event.key == pygame.K_SPACE:
                if self.is_game_over:           # 游戏已经结束
                    self.reset_game()           # 重新开始游戏
                else:                           # 切换暂停状态
                    self.is_pause = not self.is_pause
        # 判断是否正在游戏
        if not self.is_game_over and not self.is_pause:
            # 监听玩家按下字母b
                if event.type == pygame.KEYDOWN and event.key == pygame.K_b:
                    # TODO 则是炸弹数量变化
                    self.hud_panel.show_bomb(random.randint(0,100))
                    # TODO 测试生命计数数量变化
                    self.hud_panel.lives_count = random.randint(0,10)
                    self.hud_panel.show_lives()
                else:
                    # 测试修改游戏得分
                    if Self.hud_panel.increase_score(100):
                        print("升级到 %d" % self.hud_panel.level)
                    # 更新all_group中所有精灵内容
                    self.all_group.update()
    return False
def start(self):
        """开始游戏"""
        clock = pygame.time.Clock()             #游戏时钟
        while True:                             #开始游戏循环
            if self.event_handler():            #事件监听
                return
             # 判断游戏状态
            if self.is_game_over:
                print("游戏已经结束，按空格键重新开始....")
            elif self.is_pause:
                print("游戏已经暂停，按空格键继续....")
            else:
                print("游戏进行中....")
        
            pygame.display.update()             #更新显示
            clock.tick(60)                      #设置刷新帧率
if __name__ == '__main__':
    pygame.init()
    Game().satrt()
    pygame.quit()
